Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра МІ
ЗВІТ
до лабораторної роботи №3
з предмету «ТПР» на тему:
«Використання бібліотеки ППП Scilab»
Виконала:
ст.гр. МВ-32
Прийняв:
Львів – 2011
Мета роботи: навчитися використовувати бібліотеку ППП Scilab
Теоретичні відомості:
Scilab – пакет прикладних програм(ППП) для виконання математичних розрахунків. Розробник Scilab – Group INRIA –Rocquencourt Metalau Project.
Scilab – некомерційний аналог пакета Matlab.
Основні характеристики пакета Scilab:
Вільно розповсюджується разом з вихідними кодами. Використання, копіювання, зміни, розповсюдження – вільні.
Платформи: Unix, Linux, Windows.
Наявний інтерфейс і система допомоги.
Приведені алгоритми базової математики.
Можливість працювати у чисельному та символьному видах.
Робота з графікою.
Можливість використання відкомпільованих функцій мов С і Fortran.
Scilab складається з трьох частин:
Інтерпретатор.
Бібліотека функцій (Scilab-процедури).
Бібліотека С і Fortran процедур.
Мета роботи: навчитися використовувати бібліотеку ППП Scilab.
Хід роботи:
1.Запустити на виконання Scilab 5.2.
2.Розв’язати систему лінійних алгебраїчних рівнянь, додати M (0,19) до коефіціентів при і вільних членів системи
-->s=[6.7 -2.7 3.7 7.7;
-->5.7 3.7 -1.7 1.7;
-->2.7 6.7 0.7 1.7;
-->3.7 -3.7 4.7 -1.7]
s =
6.7 - 2.7 3.7 7.7
5.7 3.7 - 1.7 1.7
2.7 6.7 0.7 1.7
3.7 - 3.7 4.7 - 1.
-->b=[14.7; 8.7; 5.7; 3.7]
b =
14.7
8.7
5.7
3.7
- обертанням матриці
-->c=inv(s)
c =
- 0.0081252 0.1625431 - 0.0527026 0.0730380
- 0.0284925 - 0.0300156 0.1485231 - 0.0105469
0.0254591 - 0.1759683 0.1651347 0.1044811
0.1147157 - 0.0674023 0.0185872 - 0.1174560
-->d=s*c
d =
1. - 3.331D-16 2.776D-16 0.
- 8.327D-17 1. 1.388D-16 1.388D-16
2.776D-17 - 1.110D-16 1. 0.
0. 1.527D-16 - 8.327D-17 1.
- методом Крамера і командою det
SciPad
s=[6.7,-2.19,3.7,7.7;5.7,3.7,
-1.7,1.7;2.7,6.7,0.7,1.7;3.7,-3.7,4.7,-1.7];
b=[14.7; 8.7; 5.7; 3.7];
s1=s; s1(:,1)=b;
s2=s; s2(:,2)=b;
s3=s; s3(:,3)=b;
s4=s; s4(:,4)=b;
D=det(s);
d(1)=det(s1);
d(2)=det(s2);
d(3)=det(s3);
d(4)=det(s4);
x=d/D
P=s*x-b
Console
-->exec('D:\kramera.sce'); disp('exec done');
x =
1.2919249
0.2187175
0.1845564
0.8460697
P =
1.0D-14 *
0.1776357
0.1776357
0.0888178
0.0888178
exec done
- командою linsolve
-->[x,kerA]=linsolve(s,b)
kerA =
[]
x =
- 1.2919249
- 0.2187175
- 0.1845564
- 0.8460697
-->R=s*x+b
R =
1.0D-14 *
- 0.7105427
- 0.3552714
0.0888178
- 0.0444089
3.Задача інтерполяції (екстраполяції). Метод найменших квадратів. Виконати лінійну інтерполяцію цієї таблично заданої функції (команда interpln). Розв’язок зобразити графічно
-->x=[1.17 1.57 1.97 2.17 2.37 2.57 2.77 2.97 3.07 3.17];
-->y=[1.67 2.07 2.57 2.77 3.07 3.37 3.77 3.97 4.17 4.57];
-->xyd=[x;y]
xyd =
column 1 to 7
1.17 1.57 1.97 2.17 2.37 2.57 2.77
1.67 2.07 2.57 2.77 3.07 3.37 3.77
column 8 to 10
2.97 3.07 3.17
3.97 4.17 4.57
-->plot2d(x',y',[-3], "011", " ", [0,1,5,5]);
-->x_new=(0:4);
-->yi=interpln(xyd,x_new);
-->plot2d((0:4)',yi',[3],"000");
5.Використаємо метод найменших квадратів (команда datafit). Значення похибки обчислень er, яку видає команда datafit, дорівнює сумі квадратів відхилень експериментальних значень від значень модельної функції. Побудувати інтерполяційний многочлен методом найменших квадратів. {a0=[1;1;1]}. Розв’язок зобразити графічно.
-->x=[1.17 1.57 1.97 2.17 2.37 2.57 2.77 2.97 3.07 3.17];
-->y=[1.67 2.07 2.57 2.77 3.07 3.37 3.77 3.97 4.17 4.57];
-->plot2d(x,y,[5])
-->f=[...